﻿<?xml version="1.0" encoding="utf-8" ?>
<Recipe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  Name="FieldType"
  xmlns="http://schemas.microsoft.com/pag/gax-core"
  Bound="false"
  >
  <DocumentationLinks>
    <Link Caption="MSDN: Custom Field Types" Url="http://msdn.microsoft.com/en-us/library/ms446361.aspx" Kind="Documentation"/>
    <Link Caption="MSDN: Custom Field Type Property Rendering" Url="http://msdn.microsoft.com/en-us/library/ms472859.aspx" Kind="Documentation"/>
    <Link Caption="MSDN: Editor Controls for Field Type Properties" Url="http://msdn.microsoft.com/en-us/library/bb802857.aspx" Kind="Documentation"/>
    <Link Caption="MSDN: Custom Field Type Definition" Url="http://msdn.microsoft.com/en-us/library/ms415141.aspx" Kind="Documentation"/>
    <Link Caption="MSDN: Custom Field Classes" Url="http://msdn.microsoft.com/en-us/library/ms441150.aspx" Kind="Documentation"/>
    <Link Caption="Travis Lingenfelder: Overview of Custom Field Types in WSS 3.0" Url="http://blogs.catapultsystems.com/tlingenfelder/archive/2009/07/23/overview-of-custom-field-types-in-wss-3-0.aspx" Kind="Documentation"/>
  </DocumentationLinks>
  <xi:include href="../../../TypeAlias.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
  <Caption>Field Type</Caption>
  <Description>Adds a field type to the project</Description>
  <HostData Priority="10">
    <Icon File="Help/Icons/icon_FieldTypes.ico" />
    <CommandBar Menu="SPSFSolutionFieldTypes"/>
    <CommandBar Menu="SPSFProjectFieldTypes"/>
    <spsf:MetaData
      Visible="true"
      BindingType="CustomizationReference"
      BindingTypeTemplate="CustomizationReferenceTemplate"
      TestType="BaseCustomizationRecipeRunner"
      Enabled="true"
      CreateVSTemplate="true"
      VSTemplateDefaultName="DefaultFieldType"
	  NotSandboxSupported="true"
      Category="FieldTypes" xmlns:spsf="http://www.spalmblogger.de">
      <spsf:Authors>
        <spsf:Author>Torsten Mandelkow</spsf:Author>
        <spsf:Author>Matthias Einig</spsf:Author>
      </spsf:Authors>
      <spsf:VersionHistory>
        <spsf:VersionHistoryEntry>1.1 Updated Documentation</spsf:VersionHistoryEntry>
        <spsf:VersionHistoryEntry>1.0 Initial Recipe</spsf:VersionHistoryEntry>
      </spsf:VersionHistory>
      <spsf:WebPageContent>
        <![CDATA[As you store your business information in Windows SharePoint Services 3.0, you may encounter instances where your important business data does not conform to the field types included in Windows SharePoint Services, or situations where you want to further customize those general field types. 
    Windows SharePoint Services enables you to create custom field types. 
    These custom fields can include custom data validation and custom field rendering. 
    You can also customize the way that variable properties of your custom field types are processed and rendered when users set property variables and create new columns that are based on your custom field type.

    This recipe adds a simple Field Type to your project.
    ]]>
      </spsf:WebPageContent>
      <spsf:Test>
        <spsf:TestCases>
          <spsf:TestCase Name="FieldTypeDefault" Type="SolutionTestCase">
            <spsf:TestCaseArguments>
              <spsf:TestCaseArgument Name="FieldTypeTypeName">DefaultFieldType</spsf:TestCaseArgument>
            </spsf:TestCaseArguments>
          </spsf:TestCase> 
        </spsf:TestCases>
      </spsf:Test>
    </spsf:MetaData>
  </HostData>
  <Arguments>

    <xi:include href="../../BaseArguments.include" parse="xml" xpointer="xmlns(p=http://schemas.microsoft.com/pag/gax-core) xpointer(/p:Arguments/*)" xmlns:xi="http://www.w3.org/2001/XInclude" />

    <Argument Name="FieldTypeParentType" Type="System.String" >
      <Converter Type="FieldTypeBaseTypeConverter" />
      <ValueProvider Type="Evaluator" Expression="Text" />
    </Argument>

    <xi:include href="BaseFieldTypeArguments.include" parse="xml" xpointer="xmlns(p=http://schemas.microsoft.com/pag/gax-core) xpointer(/p:Arguments/*)" xmlns:xi="http://www.w3.org/2001/XInclude" />

  </Arguments>
  <GatheringServiceData>
    <Wizard xmlns="http://schemas.microsoft.com/pag/gax-wizards" SchemaVersion="1.0">
      <Pages>
        <Page Height="350">
          <Title>Field Type Settings</Title>
          <Fields>
            <Field Label="Branding" ValueName="SPSFBranding" PanelType="SPALM.SharePointSoftwareFactory.Library.BrandingPanel, SPALM.SharePointSoftwareFactory.Library" />
            <Field ValueName="FieldTypeTypeName" Label="Field Type Name">
              <Help>Required Text. Name of the Field Type. Limited to 255 characters. The name has to be unique within the project of this solution. It should not contain whitespaces or special characters.</Help>
            </Field>
            <Field ValueName="FieldTypeParentType" Label="Parent Type">
              <Help>Required Type. The parent field type from which this type will inherit.</Help>
            </Field>
            <Field ValueName="FieldTypeDisplayName" Label="Display Name">
              <Help>Required Text. The display name for this field type.</Help>
            </Field>
            <Field ValueName="FieldTypeDescription" Label="Description">
              <Help>Required Text. Longer description about the purpose of the field type (will be displayed in "Create Column" next to the field selector).</Help>
            </Field>
          </Fields>
        </Page>
      </Pages>
    </Wizard>
  </GatheringServiceData>
  <Actions CoordinatorServiceType="ConditionalCoordinator" xmlns="http://schemas.microsoft.com/pag/gax-core">

    <xi:include href="BaseFieldTypeActions.include" parse="xml" xpointer="xmlns(p=http://schemas.microsoft.com/pag/gax-core) xpointer(/p:Actions/*)" xmlns:xi="http://www.w3.org/2001/XInclude" />

  </Actions>
</Recipe>